安全なデータレイクの構築が容易になる AWS Lake Formation がついにリリースされました
昨年のre:Invent2018で紹介されたAWS Lake Formation がついにリリースされました。東京リージョンでもリリースされましたので、早速、試してみたいと思います。
ついにきましたLake Formation. データレイクの構築が容易に。
AWS Lake Formation – Now Generally Available | AWS News Blog https://t.co/qBdo8Ubj8O— Junpei Ozono (@jostandard) August 8, 2019
Jeff Barさんよりも、大薗さんの方が情報早かったw
- AWS Lake Formation とは
- AWS Lake Formation を試してみました!
- AWS Lake Formation の設定できる権限のIAMユーザー/IAMロール付与
- AWS Lake Formationが実行するためのIAMロールに権限を付与する
- BlueprintでWorkflowを作成する
- Workflowの実行
- Amazon Athenaからテーブルの結果を確認
- まとめ
- 合わせて読みたい
AWS Lake Formation とは
AWS Lake Formation は、データソースとターゲットのS3とターゲットのデータベースを指定すると、データレイクに最適化したデータファイルに変換して、データベース上のテーブルとしてクエリができる状態にするサービスです。データの変換や重複排除などを自動的に行う機能を備え、データベース・テーブル・カラムレベルでのアクセスコントロールやアクセス状況を把握できます。AWS Lake Formation は、裏側で、AWS Glue のクローラやジョブを自動生成、実行して、これらの機能を実現しています。
サービスの概要については、以下のグログをご覧ください。
[新サービス] 安全なデータレイクを簡単に設定できる!AWS Lake Formation が発表されました! #reinvent
ANT396 : [NEW LAUNCH!] AWS Lake Formation の紹介 – セキュアなデータレイクを構築する #reinvent
AWS Lake Formation を試してみました!
AWS Lake Formation の Blueprintを使って、Cloudtrailのログからデータベース上のテーブルとしてクエリができる状態にする手順を解説します。
AWS Lake Formation の設定できる権限のIAMユーザー/IAMロール付与
初めてマネジメントコンソールからAWS Lake Formationの画面にアクセスすると、AWS Lake Formation の設定できる権限の付与を促すダイアログが表示されます。
この権限の付与は、左の[Permissions]-[Admins and database creators]を選択して、Data lake administratorsの[Grant]ボタンを押すと以下のダイアログは表示されます。なお、AWSの管理者権限があるユーザーで登録します。
AWS Lake Formationが実行するためのIAMロールに権限を付与する
Lake Formation関連の権限を付与してみました権限エラーとなったため、今回は最終的にAdministratorAccessを付与としました。下記の設定は推奨設定ではありません。
BlueprintでWorkflowを作成する
Blueprintの AWS CloudTrail
AWS CloudTrailのBlueprintを選択して、以下の設定項目を埋めていきます。Import SourceはDefault
、取り込み開始日を指定します。
Target database に事前にAWS Glueで作成したcm-lakeformation
データベース、Target storage location に変換後のファイルを出力するS3パスs3://cm-lakeformation-vg
を指定します。Data formatは、カラムナファイルフォーマットであるParquet
を指定します。
IAM roleは、AWS Lake Formationが実行するための権限を付与したIAMロールを指定します。最後に[Create]を押すと登録されます。
Workflowの実行
登録すると、以下のメッセージが表示されます。Start it now?
リンクを押して実行を開始します。
WorkflowのStateは、RUNNING => Discovering => Importing の順に推移します。(Completedではない)
最初は、RUNNINGです。内部的にはGlueのクローラやジョブが自動生成するまでです。
Discoveryは、Glueのクローラが指定したデータファイルの推測して、データソースをGlueデータカタログに登録します。
Importingは、Glueのジョブが指定したデータファイルの変換して、データtargetをGlueデータカタログに登録してクエリできる状態になります。Completedにならないなと思っていたら、すでにクエリできる状態になっていました。
なお、上記のWorkflowのStateは、[View graph]ボタンもしくは、Run ID のクリックするとGlueのジョブの実行状態を参照できます。
クリックすると、以下のGlueのジョブの状態と Workflowを参照できます。GlueのWorkflowを見ただけで、現在の実行状態を視覚的に把握できて大変便利です。
Amazon Athenaからテーブルの結果を確認
cm_lakeformationデータベースの下に2つのテーブルが作成されています。_cloudtrail_logs_cloudtrail
は、データソースとなるテーブルです。cloudtrail_logs_cloudtrail
は、データターゲットつまり変換後のファイルを参照しているテーブルとなります。
まとめ
AWS Lake Formation を用いることで、非常に簡単にデータレイクが構築できることがご理解いただけたと思います。どこまでご紹介するか迷いましたが、今回は素早く簡単であるということにフォーカスして解説しました。AWS Lake Formationは、Glueのスクリプト開発やS3ファイルの煩雑な作業を自動化し、その他にもきめ細かいアクセス制御やMLを用いた重複排除など優れた機能を持ち合わせています。今後も個々の機能についてご紹介します。
- AWS News Blog - AWS Lake Formation – Now Generally Available
- AWS Big Data Blog - Build, secure, and manage data lakes with AWS Lake Formation